package com.jingdianjichi.subject.domain.service;

import com.jingdianjichi.subject.domain.entity.SubjectCategoryBO;
import com.jingdianjichi.subject.infra.basic.entity.SubjectCategory;

import java.util.List;

public interface SubjectCategoryDomainService {

    /**
     * 新增分类数据,不用返回数据的
     */
    void add(SubjectCategoryBO subjectCategoryBO);

    /**
     * 查询岗位大类
     * @return
     */
    List<SubjectCategoryBO> queryCategory(SubjectCategoryBO subjectCategoryBO);

    /**
     * 更新分类
     * @param subjectCategoryBO
     * @return
     */
    Boolean update(SubjectCategoryBO subjectCategoryBO);


    /**
     * 删除分类
     * @param subjectCategoryBO
     * @return
     */
    Boolean delete(SubjectCategoryBO subjectCategoryBO);

    /**
     * 一口气查出来分类集标签,树状结构版本
     */
    List<SubjectCategoryBO> queryCategoryAndLabel1_0(SubjectCategoryBO subjectCategoryBO);



    /**
     * 一口气查出来分类集标签,多线程版本,使用futureTask实现
     */
    List<SubjectCategoryBO> queryCategoryAndLabel2_0(SubjectCategoryBO subjectCategoryBO);

    /**
     * 一口气查出来分类集标签,使用complatetableFuture实现,这个是增强版本来的
     */
    List<SubjectCategoryBO> queryCategoryAndLabel2_1(SubjectCategoryBO subjectCategoryBO);

    /**
     * 使用本地缓存实现查询
     */
    List<SubjectCategoryBO> queryCategoryAndLabel2_2(SubjectCategoryBO subjectCategoryBO);
}
